ggsm_order_member_trigger = {
    society_member_of = ggsm_order_sacred_magdalene
}

ggsm_adult_catholic_woman_trigger = {
    is_female = yes
    is_adult = yes
    religion = catholic
    NOT = { trait = incapable }
    NOT = { trait = harelip }
}

ggsm_available_adult_trigger = {
    is_adult = yes
    NOT = { trait = incapable }
    is_inaccessible_trigger = no
    prisoner = no
    in_command = no
}

ggsm_has_rank_trait_trigger = {
    OR = {
        trait = ggsm_penitent_of_magdalene
        trait = ggsm_carnal_confessor
        trait = ggsm_sacred_minister
        trait = ggsm_courtesan_of_jesus
    }
}

ggsm_house_base_worker_trigger = {
    is_female = yes
    is_adult = yes
    religion = catholic
    society_member_of = ggsm_order_sacred_magdalene
    has_character_flag = ggsm_sacred_prostitute
    NOT = { practical_age >= 50 }

    NOR = {
        trait = incapable
        trait = chaste
        trait = celibate
        trait = excommunicated
        is_inaccessible_trigger = yes
        prisoner = yes
        in_command = yes
    }
}

ggsm_can_work_as_prostitute_trigger = {
    ggsm_house_base_worker_trigger = yes
    NOT = { has_character_flag = ggsm_house_shift }
    NOT = { has_character_modifier = ggsm_house_rest }

    ggsm_at_house_of_mercy_trigger = yes
}

ggsm_at_house_of_mercy_trigger = {
    location = {
        any_province_holding = {
            OR = {
                has_building = tb_ggsm_magdalene_house_1
                has_building = tb_ggsm_magdalene_house_2
                has_building = tb_ggsm_magdalene_house_3
                has_building = tb_ggsm_magdalene_house_4
                has_building = tb_ggsm_magdalene_house_5
                has_building = ca_ggsm_magdalene_house_1
                has_building = ca_ggsm_magdalene_house_2
                has_building = ca_ggsm_magdalene_house_3
                has_building = ca_ggsm_magdalene_house_4
                has_building = ca_ggsm_magdalene_house_5
                has_building = ct_ggsm_magdalene_house_1
                has_building = ct_ggsm_magdalene_house_2
                has_building = ct_ggsm_magdalene_house_3
                has_building = ct_ggsm_magdalene_house_4
                has_building = ct_ggsm_magdalene_house_5
            }
        }
    }
}

ggsm_house_sister_available_trigger = {
    society_member_of = ggsm_order_sacred_magdalene
    has_character_flag = ggsm_sacred_prostitute
    is_female = yes
    is_adult = yes
    religion = catholic
    prisoner = no
    in_command = no
    is_inaccessible_trigger = no

    NOR = {
        trait = incapable
        trait = excommunicated
        practical_age >= 50
    }

    NOT = { has_character_flag = ggsm_house_shift }
    NOT = { has_character_modifier = ggsm_house_rest }
}

ggsm_house_client_can_afford_trigger = {
    # The serving sister is ROOT. The scoped patron must be able to pay
    # one share of her unified House rate.

    trigger_if = {
        limit = { ROOT = { tier = EMPEROR } }

        trigger_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 15 } } }
            wealth >= 70
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 13 } } }
            wealth >= 60
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 11 } } }
            wealth >= 50
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 9 } } }
            wealth >= 40
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 7 } } }
            wealth >= 30
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 5 } } }
            wealth >= 20
        }
        trigger_else = {
            wealth >= 10
        }
    }
    trigger_else_if = {
        limit = { ROOT = { tier = KING } }

        trigger_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 15 } } }
            wealth >= 42
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 13 } } }
            wealth >= 36
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 11 } } }
            wealth >= 30
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 9 } } }
            wealth >= 24
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 7 } } }
            wealth >= 18
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 5 } } }
            wealth >= 12
        }
        trigger_else = {
            wealth >= 6
        }
    }
    trigger_else_if = {
        limit = { ROOT = { tier = DUKE } }

        trigger_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 15 } } }
            wealth >= 28
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 13 } } }
            wealth >= 24
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 11 } } }
            wealth >= 20
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 9 } } }
            wealth >= 16
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 7 } } }
            wealth >= 12
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 5 } } }
            wealth >= 8
        }
        trigger_else = {
            wealth >= 4
        }
    }
    trigger_else_if = {
        limit = { ROOT = { tier = COUNT } }

        trigger_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 15 } } }
            wealth >= 14
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 13 } } }
            wealth >= 12
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 11 } } }
            wealth >= 10
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 9 } } }
            wealth >= 8
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 7 } } }
            wealth >= 6
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 5 } } }
            wealth >= 4
        }
        trigger_else = {
            wealth >= 2
        }
    }
    trigger_else = {
        trigger_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 15 } } }
            wealth >= 7
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 13 } } }
            wealth >= 6
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 11 } } }
            wealth >= 5
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 9 } } }
            wealth >= 4
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 7 } } }
            wealth >= 3
        }
        trigger_else_if = {
            limit = { ROOT = { check_variable = { which = wealth_temp value >= 5 } } }
            wealth >= 2
        }
        trigger_else = {
            wealth >= 1
        }
    }
}

ggsm_house_eligible_male_client_trigger = {
    is_female = no
    is_adult = yes
    religion = catholic
    prisoner = no
    in_command = no
    is_within_diplo_range = ROOT

    NOT = { character = ROOT }
    NOT = { spouse = { character = ROOT } }
    NOT = { is_consort = ROOT }
    NOT = { trait = incapable }
    NOT = { is_inaccessible_trigger = yes }

    # A Countess may serve lowborn patrons. From Duchess upward,
    # House patrons must belong to a dynasty.
    trigger_if = {
        limit = {
            ROOT = {
                OR = {
                    tier = DUKE
                    tier = KING
                    tier = EMPEROR
                }
            }
        }
        is_lowborn = no
    }

    ggsm_house_client_can_afford_trigger = yes
}

ggsm_house_has_male_client_trigger = {
    # Queens and Empresses draw only from playable rulers
    # (count tier or higher, plus patricians). Lower-ranked
    # sisters use the wider character pool.
    trigger_if = {
        limit = {
            OR = {
                tier = KING
                tier = EMPEROR
            }
        }
        any_playable_ruler = {
            ggsm_house_eligible_male_client_trigger = yes
        }
    }
    trigger_else = {
        any_character = {
            ggsm_house_eligible_male_client_trigger = yes
        }
    }
}

ggsm_house_has_group_male_clients_trigger = {
    trigger_if = {
        limit = {
            OR = {
                tier = KING
                tier = EMPEROR
            }
        }
        any_playable_ruler = {
            count = 3
            ggsm_house_eligible_male_client_trigger = yes
        }
    }
    trigger_else = {
        any_character = {
            count = 3
            ggsm_house_eligible_male_client_trigger = yes
        }
    }
}

#######################################
# FEMALE HOUSE CLIENTS
#
# Female patrons use a completely separate
# pool from male patrons. A service branch
# never mixes the two pools.
#######################################

ggsm_house_eligible_female_client_trigger = {
    is_female = yes
    is_adult = yes
    religion = catholic
    prisoner = no
    in_command = no
    is_within_diplo_range = ROOT

    NOT = { character = ROOT }
    NOT = { spouse = { character = ROOT } }
    NOT = { is_consort = ROOT }
    NOT = { trait = incapable }
    NOT = { is_inaccessible_trigger = yes }

    # A Countess may serve lowborn patrons. From Duchess upward,
    # House patrons must belong to a dynasty.
    trigger_if = {
        limit = {
            ROOT = {
                OR = {
                    tier = DUKE
                    tier = KING
                    tier = EMPEROR
                }
            }
        }
        is_lowborn = no
    }

    ggsm_house_client_can_afford_trigger = yes
}

ggsm_house_has_female_client_trigger = {
    # Queens and Empresses draw only from playable rulers.
    # Lower-ranked sisters use the wider character pool.
    trigger_if = {
        limit = {
            OR = {
                tier = KING
                tier = EMPEROR
            }
        }
        any_playable_ruler = {
            ggsm_house_eligible_female_client_trigger = yes
        }
    }
    trigger_else = {
        any_character = {
            ggsm_house_eligible_female_client_trigger = yes
        }
    }
}

ggsm_house_has_group_female_clients_trigger = {
    trigger_if = {
        limit = {
            OR = {
                tier = KING
                tier = EMPEROR
            }
        }
        any_playable_ruler = {
            count = 3
            ggsm_house_eligible_female_client_trigger = yes
        }
    }
    trigger_else = {
        any_character = {
            count = 3
            ggsm_house_eligible_female_client_trigger = yes
        }
    }
}

ggsm_house_single_client_active_trigger = {
    event_target:ggsm_house_client = { is_alive = yes }
}

ggsm_house_group_clients_active_trigger = {
    event_target:ggsm_house_client_1 = { is_alive = yes }
    event_target:ggsm_house_client_2 = { is_alive = yes }
    event_target:ggsm_house_client_3 = { is_alive = yes }
}
